package com.triadsystems.cashweb.controle.mbean.impl;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.http.HttpSession;

import lombok.Getter;
import lombok.Setter;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;

import com.icon.infra.controle.utils.GenericoBean;
import com.triadsystems.cashweb.controle.seguranca.AutenticacaoServico;
import com.triadsystems.cashweb.modelo.negocio.dominios.ILoginDominio;
import com.triadsystems.cashweb.modelo.negocio.servicos.IUsuarioServico;
import com.triadsystems.cashweb.modelo.persistencia.entidades.Usuario;


@Named
@Scope("session")
public class LoginBean extends GenericoBean {
	private static final long serialVersionUID = 1L;

	@Autowired
	private ILoginDominio loginDominio;

	@Autowired
	private AutenticacaoServico autenticacaoServico;

	@Autowired
	private IUsuarioServico usuarioServico;


	@Getter
	@Setter
	private List<String> listaImagem;

	// usado no login
	@Getter
	@Setter
	private Usuario usuario;

	@Getter
	@Setter
	private String confirmaSenha;

	@Getter
	@Setter
	private String browser = "";

	@PostConstruct
	public void inicializar() {
		setUsuario(new Usuario());

		listaImagem = new ArrayList<String>();
		listaImagem.add("img1.jpg");
		listaImagem.add("img2.jpg");
		listaImagem.add("img3.jpg");
		listaImagem.add("img4.jpg");

	}

	// LOGIN USUARIO
	public String doLogar() {
		String resultado = "home";
		try {

			Usuario usuario = loginDominio.doAutenticarUsuario(getUsuario(),
					confirmaSenha);

			autenticacaoServico.atualizarAuthorites(usuario.getEmail(),
					confirmaSenha);
			confirmaSenha = null;

		} catch (Exception e) {
			resultado = null;
		}
		return resultado;
	}

	public final String showLista() {

		return "login";
	}

	public String showHome() {
		return "home";
	}

	private String getSessionId() {
		FacesContext fc = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) fc.getExternalContext().getSession(
				false);
		if (session != null) {
			return session.getId();
		} else {
			return "";
		}
	}

}
